Statically Compiled Asp Code without Any Modiications. References

نویسنده

  • C. Schmittgen
چکیده

GG ar91] D. GG artner. {Red + : ein interaktives codeausf uhrendes Reduktionssystem zur vollstt andigen Realisierung eines angewandten {Kalk uls. PhD thesis, Institut f ur In-14 Top{level abstractions returned after a pass through the processing phase are merely special cases of partial applications: they are not applied to any arguments at all. {extension applies them to the complete set of abstracted variables and sets up the full binding structure in front of this application. Thus reducing them to normal forms can accomplished in the same way. In case of structured objects (e.g. lists or applications with no abstraction in function position) the reduction has to be recursively driven into each component. As indicated in gure 7, reductions to normal forms essentially require that the processing phase which implements the function Reduce be supplemented by an interpreter phase which does the {extensions as formally speciied by the function Eta. What this interpreter does is basically described on page 11: For every partial application (or abstraction) received from the processing phase, it creates on the argument stack an argument frame for a full application by lling the missing argument position with the respective bound variables (or formal parameters). These variables are represented as pointers to tuples which include the variable names and the {nesting levels. These pointers are also pushed into a run{time stack which is supported by the interpreter in order to handle the recursive traversal of the expression. On each call of the interpreter, the {nesting level for each formal parameter is incremented by one, starting with the value zero.Figure 8: The graph structure of a variable introduced by {extension In another pass through the processing phase, the reduction of the full supercombinator application which constitutes the body of the {extended abstraction may now be resumed. This is done by pushing onto the return stack the address of an artiicially created EXIT{ instruction and then calling the supercombinator code. This code eventually terminates by executing a RETURN{instruction which pops the address of the EXIT{instruction. When doing this repeatedly in case of nested partial applications, the formal parameters of several nested {extensions may pile up on the run{time stack. If the body{expression returned from the processing phase is nally a normal form, i.e. no further {extensions need to be done, the interpreter pops the variables held in its run{time stack to put the {binders in front of this expression in …

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

The Design of a Meta-level Architecture for the Beta Language

The design of a meta-level architecture for a compiled and statically typed object-oriented programming language is presented. The architecture provides compiled languages with suucient runtime information to implement a full-blown typed meta-level interface, including both introspective and introces-sory capabilities. The central component of the meta-level architecture is the runtime system. ...

متن کامل

A Functional Shell That Dynamically Combines Compiled Code

We present a new shell that provides the full basic functionality of a strongly typed lazy functional language, including overloading. The shell can be used for manipulating files, applications, data and processes at the command line. The shell does type checking and only executes well-typed expressions. Files are typed, and applications are simply files with a function type. The shell executes...

متن کامل

A Functional Shell That Operates on Typed and Compiled Applications

Esther is the interactive shell of Famke, a prototype implementation of a strongly typed operating system written in the functional programming language Clean. As usual, the shell can be used for manipulating files, applications, data and processes at the command line. A special feature of Esther is that the shell language provides the basic functionality of a strongly typed lazy functional lan...

متن کامل

JIT Circuit Simulation with LLVM

The project aimed to create a circuit simulator that produces JIT compiled native code through LLVM’s APIs. A JIT based simulation approach provides native simulation speed, while still allowing native code to be recompiled to provide circuit debugging features unavailable in statically compiled simulators. The result of the project is a simulator that performs competitively against existing si...

متن کامل

Efficient Gradual Typing

Gradual typing combines static and dynamic typing in the same program. One would hope that the performance in a gradually typed language would range between that of a dynamically typed language and a statically typed language. Existing implementations of gradually typed languages have not achieved this goal due to overheads associated with runtime casts. Takikawa et al. (2016) report up to 100×...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1992